From e79535a582ea9ba22e6fb5e1d5ab13dc7dae38e4 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Tue, 24 Jun 2014 18:07:55 -0700 Subject: [PATCH] Avoid begin/commit in Category::getCountMessage() Change-Id: I64e4a859a9adf2930265e282f59816c82e1c3070 --- includes/Category.php | 4 ++-- includes/CategoryViewer.php | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/includes/Category.php b/includes/Category.php index e235e4e94e..7bab464bf7 100644 --- a/includes/Category.php +++ b/includes/Category.php @@ -320,7 +320,7 @@ class Category { wfProfileIn( __METHOD__ ); $dbw = wfGetDB( DB_MASTER ); - $dbw->begin( __METHOD__ ); + $dbw->startAtomic( __METHOD__ ); # Insert the row if it doesn't exist yet (e.g., this is being run via # update.php from a pre-1.16 schema). TODO: This will cause lots and @@ -360,7 +360,7 @@ class Category { array( 'cat_title' => $this->mName ), __METHOD__ ); - $dbw->commit( __METHOD__ ); + $dbw->endAtomic( __METHOD__ ); wfProfileOut( __METHOD__ ); diff --git a/includes/CategoryViewer.php b/includes/CategoryViewer.php index 49818e6a12..cd9eaa9c10 100644 --- a/includes/CategoryViewer.php +++ b/includes/CategoryViewer.php @@ -707,7 +707,10 @@ class CategoryViewer extends ContextSource { // to refresh the incorrect category table entry -- which should be // quick due to the small number of entries. $totalcnt = $rescnt; - $this->cat->refreshCounts(); + $category = $this->cat; + wfGetDB( DB_MASTER )->onTransactionIdle( function() use ( $category ) { + $category->refreshCounts(); + } ); } else { // Case 3: hopeless. Don't give a total count at all. // Messages: category-subcat-count-limited, category-article-count-limited, -- 2.20.1